A conventional technique for avoiding transmission of duplicate data is disclosed that stores transmitted data in a cache in a transmission node, also stores received data in the cache in a reception node, and transmits only an identifier from the transmission node to the reception node when re-transmission of the transmitted data is requested.
More specifically, transmission of data including segments A, B, and C from user A to user B (step (1)) as illustrated in FIG. 1 is discussed. In this case, when transmitted segments A, C, and E are stored in a cache of node B, node A transmits the segment B, an identifier “a” of the segment A and an identifier “c” of the segment C to the node B (step (2)).
Since received segments A, C and E are stored in the cache of the node B, the node B reads the segments A and C from the cache by using the received identifiers “a” and “c” of the segments A and C, and outputs the segments A and C to the user B together with the received segment B (step (3)).
Thus, transmission of duplicate data is suppressed even in a communication between different users. More specifically, as illustrated in FIG. 2, users X and W are connected to the node A, and users Y and Z are connected to the node B. Assume that first, the user X transmits data including segments A, B, C, and D to the user Y. Then, when the user X transmits data including the segments A, B, C, and D to the node A (step (11)), the node A stores the segments A, B, C, and D into the cache (step (12)), and transmits the segments to the node B (step (13)).
Upon receiving the segments A, B, C, and D, the node B stores the segments into the cache (step (14)), and transmits the segments A, B, C, and D to the user Y (step (15)).
Assume that thereafter, as illustrated in FIG. 3, the user W transmits data including the segments B, C, D, and E to the user Z. In this case, the user W transmits data including the segments B, C, D, and E to the node A (step (21)). For the transmitted segments B, C, and D stored in the cache, the node A identifies identifiers “b”, “c”, and “d” thereof, and stores, in the cache, the segment E, which is not stored in the cache (step (22)). Then, the node A transmits identifiers “b”, “c”, and “d” of the transmitted segments, and the segment E to the node B (step (23)).
The node B stores, in the cache, the segment E which is received from the node A but not stored in the cache (step (24)), reads, from the cache, the segments B, C, and D associated with received identifiers “b”, “c”, and “d”, and transmits the segments B, C, D, and E to the user Z (step (25)).
Thus, as for the segments, only the untransmitted segment E is transmitted at the stage illustrated in FIG. 3, and accordingly, communication traffic between the nodes A and B is reduced.
However, data of the segments is stored as is in the cache of the node A and the cache of the node B. In such a case, when an irrelevant third user makes unauthorized access to the node A or B and unlawfully checks the cache, data of the segment is leaked.
Related techniques are disclosed in, for example, Japanese Laid-open Patent Publication Nos. 2010-072740 and 2009-171635.